//package com.mxin.install.widget;
//
//import android.Manifest;
//import android.app.Activity;
//import android.app.Dialog;
//import android.content.Context;
//import android.content.DialogInterface;
//import android.content.pm.PackageManager;
//import android.graphics.Bitmap;
//import android.graphics.BitmapFactory;
//import android.graphics.Color;
//import android.graphics.drawable.ColorDrawable;
//import android.telecom.Call;
//import android.text.TextUtils;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.Button;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.TextView;
//
//import com.mxin.install.R;
//import com.mxin.util.FileUtil;
//import com.mxin.util.ScreenUtils;
//
//import java.io.File;
//
//import androidx.annotation.NonNull;
//import androidx.annotation.Nullable;
//import androidx.core.app.ActivityCompat;
//
///**
// * Created by Administrator on 2019/3/8 0008.
// */
//
//public class UpdateVersionDialog extends Dialog implements View.OnClickListener  {
//
//	private TextView tvTitle;
//	private TextView tvInfo;
//	private Button btnUpdate;
//	private NumberProgressBar progressBar;
//	private TextView tvResult;
//	private ImageView ivClose;
//
//
//	private String downUrl;
//	private String saveFilePath;
//	private OnUpdateVersionListener updateListener;
//
//	public UpdateVersionDialog(@NonNull Context context) {
//		super(context);
//	}
//
//	public UpdateVersionDialog(@NonNull Context context, int themeResId) {
//		super(context, themeResId);
//	}
//
//	protected UpdateVersionDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {
//		super(context, cancelable, cancelListener);
//	}
//
//	public interface OnUpdateVersionListener{
//
//		void closeDialog(DialogInterface dialog);
//
//		void downSuccess(DialogInterface dialog, String filepath);
//
//		void downFailed(DialogInterface dialog);
//	}
//
//	public void initView(){
//		tvTitle = findViewById(R.id.tv_title);
//		tvInfo = findViewById(R.id.tv_update_info);
//		tvResult = findViewById(R.id.tv_result);
//		progressBar = findViewById(R.id.npb);
//		btnUpdate = findViewById(R.id.btn_ok);
//		ivClose = findViewById(R.id.iv_close);
//	}
//
//	public void setTitle(String title){
//		if(!TextUtils.isEmpty(title)){
//			tvTitle.setText(title);
//		}
//	}
//
//	public void setContent(String content){
//		if(!TextUtils.isEmpty(content)){
//			tvInfo.setText(content);
//		}
//	}
//
//	public void setResult(String result){
//		if(!TextUtils.isEmpty(result)){
//			tvResult.setText(result);
//		}
//	}
//
//	public void updateProgress(int progress){
//		progressBar.setProgress(progress);
//	}
//
//	public void setUpdateListener(OnUpdateVersionListener updateListener) {
//		this.updateListener = updateListener;
//	}
//
//	public void setSaveFilePath(String saveFilePath) {
//		this.saveFilePath = saveFilePath;
//	}
//
//	public void setDownUrl(String downUrl) {
//		this.downUrl = downUrl;
//	}
//
//	@Override
//	public void onClick(View v) {
//		int id = v.getId();
//		if (id == R.id.iv_close) {
//			if (updateListener != null) {
//				updateListener.closeDialog(this);
//			}
//		} else if (id == R.id.btn_ok) {
//			if (v.getTag() != null) {
//				return;
//			}
//			tvResult.setVisibility(View.INVISIBLE);
//			if ("开始安装".equals(btnUpdate.getText().toString())) {
//				if (updateListener != null) {
//					updateListener.downSuccess(this, saveFilePath);
//				}
//			} else {
//				btnUpdate.setTag(false);
//				btnUpdate.setVisibility(View.INVISIBLE);
//				progressBar.setVisibility(View.VISIBLE);
//				if (TextUtils.isEmpty(saveFilePath)) {
//					String filename = downUrl.contains("/") ? downUrl.substring(downUrl.lastIndexOf("/") + 1) : (System.currentTimeMillis() + ".apk");
//					saveFilePath = FileUtil.getDownloadFilePath() + File.separator + filename;
//				}
//				// 判断是否有存储权限，
//				int hasPermission = ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
//				//没有授权，则需要先获取存储权限，然后下载文件
//				if (hasPermission != PackageManager.PERMISSION_GRANTED) {
//					//进行授权提示
//					ActivityCompat.requestPermissions((Activity)getContext(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0x9010);
//					//startDownFile();
//				} else {
//					startDownFile();
//				}
//			}
//		}
//	}
//
//	public void startDownFile(){
//		downFile(downUrl, saveFilePath);
//	}
//
//	private Call downFile(String url, String path){
//		return OKHttpUtils.downloadAndSaveFile(url, path, new UIProgressListener() {
//			@Override
//			public void onUIProgress(long currentBytes, long contentLength, boolean done) {
//				progressBar.setProgress((int) ((currentBytes/(double)contentLength)*100));
//			}
//
//			@Override
//			public void onUIFinish(long currentBytes, long contentLength, boolean done) {
//				super.onUIFinish(currentBytes, contentLength, done);
//				if(updateListener!=null){
//					if(currentBytes == contentLength && contentLength > 0){
//						updateListener.downSuccess(dialog, saveFilePath);
//						btnUpdate.setText("开始安装");
//						btnUpdate.setVisibility(View.VISIBLE);
//						progressBar.setVisibility(View.INVISIBLE);
//						btnUpdate.setTag(null);
//					}else{
//						tvResult.setText("文件下载失败！");
//						progressBar.setVisibility(View.INVISIBLE);
//						tvResult.setVisibility(View.VISIBLE);
//						btnUpdate.setVisibility(View.VISIBLE);
//						btnUpdate.setTag(null);
//						updateListener.downFailed(dialog);
//					}
//				}
//
//			}
//		});
////			DownloadManager.getInstance().download(url, path, this);
//	}
//
//	public static class Builder { //, DownloadListener
//
//		String title;
//		String content;
//		String downUrl;
//		String saveFilePath;
//		OnUpdateVersionListener updateListener;
//
//		UpdateVersionDialog dialog;
//		Activity mContext;
//
//
//		public Builder(Activity mContext) {
//			this.mContext = mContext;
//		}
//
//		public UpdateVersionDialog create(){
//			dialog = new UpdateVersionDialog(mContext, R.style.UpdateAppDialog);
//			dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
//			dialog.setContentView(R.layout.lib_update_app_dialog);
//			dialog.setCancelable(false);
//			LinearLayout layout = dialog.findViewById(R.id.ll_top);
//			ViewGroup.LayoutParams layoutParams = layout.getLayoutParams();
//			int width = ScreenUtils.getScreenWidth()*3/4;
//			layoutParams.width = width;
//			layout.setLayoutParams(layoutParams);
//			//顶部图片缩放处理
//			Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.lib_update_app_top_bg);
//			int imgWidth = bitmap.getWidth();
//			int imgHeight = bitmap.getHeight();
//			bitmap.recycle();
//			int newImgHeight = (int) (width*1.0f / imgWidth * imgHeight);
//			ImageView imageView = dialog.findViewById(R.id.iv_top);
//			ViewGroup.LayoutParams lp = imageView.getLayoutParams();
//			lp.width = width;
//			lp.height = newImgHeight;
//			imageView.setLayoutParams(lp);
//
//
////			btnUpdate = dialog.findViewById(R.id.btn_ok);
////			ivClose =
////			progressBar = dialog.findViewById(R.id.npb);
////			tvResult = dialog.findViewById(R.id.tv_result);
//			dialog.setTitle(title);
//			dialog.setContent(content);
//			dialog.setUpdateListener(updateListener);
//			dialog.setDownUrl(downUrl);
//			dialog.setSaveFilePath(saveFilePath);
//
//			dialog.findViewById(R.id.iv_close).setOnClickListener(dialog);
//			dialog.findViewById(R.id.btn_ok).setOnClickListener(dialog);
//			return dialog;
//		}
//
//		public Builder setTitle(String title) {
//			this.title = title;
//			return this;
//		}
//
//		public Builder setContent(String content) {
//			this.content = content;
//			return this;
//		}
//
//		public Builder setDownUrl(String downUrl) {
//			this.downUrl = downUrl;
//			return this;
//		}
//
//		public void setSaveFilePath(String saveFilePath) {
//			this.saveFilePath = saveFilePath;
//		}
//
//		public Builder setUpdateListener(OnUpdateVersionListener updateListener) {
//			this.updateListener = updateListener;
//			return this;
//		}
//
////		public void startInstallApp(String saveFilePath){
////		}
//
//	}
//
//
//
//}
